#ifndef _FIG_BULLET_ROCKET_H_
#define _FIG_BULLET_ROCKET_H_

#include "fig_bullet.h"
#include "ui/ui_manager.h"

class FIGSfx;

class FIGBulletRocket : public FIGBullet
{
public:

	enum ROCKETSTATE
	{
		STATE_GOLEFT,
		STATE_GORIGHT,
		STATE_GOFORWARD
	};

	FIGBulletRocket(float DamagePower,
					bool  IsEnemyBullet
					);


	virtual void					Render(const math::Vec2& Offset,float Scale);
	virtual void					RenderDebug(const math::Vec2& Offset,float Scale);
	virtual void					Tick(float dt);
	virtual void					ReSpawn(const math::Vec2& Pos,
											FIGBullet::STARTPOS StartDir,
											const math::Vec2& TargetDir
											);
	virtual void					Clear();

	void							SetState(FIGBulletRocket::ROCKETSTATE State);
	void							JustGoForward() { m_bToGoForward = true; };
		
protected:

	void							SFXTick(float dt);
	
	float							m_Acceleration;
	math::Vec2						m_StartingPos;

	FIGBulletRocket::ROCKETSTATE	m_State;
	
	FIGSfx*							m_pSFX;
	bool							m_bToGoForward;
	

};

#endif